<?php

class Photos {
	
	// Propriétés
	private $idClient;
	private $lienBDD;
	
	
	// CONSTRUCTEUR 
	public function Photos ($pIdClient, $pLienBDD) {
		
		$this->idClient = $pIdClient;
		$this->lienBDD =  $pLienBDD;
	}
	
	// METHODES
	public function afficherPhoto($pIdPhoto) {
		
		// Affichage des infos de l'identifiant
		$sql = "SELECT *
				FROM photos
				WHERE idPhoto = ".$pIdPhoto;
		
		$requetePreparee = $this->lienBDD->prepare($sql);
		$requetePreparee->execute();
		
		$infoPhotos = $requetePreparee->fetch(PDO::FETCH_OBJ);
		
		?>
			<img src="<?php echo $infoPhotos->lienPhoto; ?>" >
		<?php
	}
	
	public function afficherMiniature($pIdPhoto) {
	
		// Affichage des infos de l'identifiant
		$sql = "SELECT *
				FROM photos
				WHERE idPhoto = ".$pIdPhoto;
	
		$requetePreparee = $this->lienBDD->prepare($sql);
		$requetePreparee->execute();
	
		$infoPhotos = $requetePreparee->fetch(PDO::FETCH_OBJ);
	
		?>
			<div style="float: left">
				<form method="post" action="index.php?page=photos">
					<input type="image" src="<?php echo $infoPhotos->lienMiniature; ?>" alt="" title="<?php echo $infoPhotos->datePhoto; ?>"/>
					<input type="hidden" name="idPhoto" value="<?php echo $pIdPhoto; ?>" >
					<input type="hidden" name="idClientChoisi" value="<?php echo $this->idClient; ?>" >
				</form>
			</div>
		<?php
	}	
	
	public function supprimerPhoto($pIdPhoto) {
		
		$getEmplacementPhoto($pIdPhoto);
		
		
		
		$sql = "DELETE FROM photos
				WHERE idPhoto = ".$pIdPhoto;
		
		$requetePreparee = $this->lienBDD->prepare($sql);
		$requeteReussi = $requetePreparee->execute();
		
		if( ! $requeteReussi)
			echo "Erreur dans la suppression de la photo de la base.";
		
		
			
	}
	
	// Traitement de l'ajout photo
	public function ajoutPhoto() {
		
		// Si le champ Ajout Photo existe
		if( isset($_FILES['chmpAjoutPhoto'])){

			// S'il n'y a pas de message d'erreur provenant du champ
			if( ! $_FILES['chmpAjoutPhoto']['error'] ){
				
				/*
				 * fonctionnement de getimagesize()
				 *
				 * récupère :
				 * 1° : la largeur 
				 * 2° : la hauteur 
				 * 3° : le type sous forme d'entier 2 pour jpeg, 3 pour png
				 * 4° : renvoie = width="largeur" height="hauteur"
				 * 
				 */
				
				list($width, $height, $type, $attr) = getimagesize($_FILES['chmpAjoutPhoto']['tmp_name']);
				
				// Le dossier doit être en 777 pour pouvoir l'ouvrir et y insérer un fichier
				
				$nomPhoto = time().$_FILES['chmpAjoutPhoto']['name'];
				
				// Transfert du fichier temporaire vers le dossier imgaes avec sont vrai nom
				move_uploaded_file($_FILES['chmpAjoutPhoto']['tmp_name'], "images/".$nomPhoto);
				
				// remplacement de
				$type = str_replace(
									array('image/','jpeg'), /*    ça -> ('image/','jpeg')               */
						   		    array('', 'jpg'),  		/*    par ça ->  array('', 'jpg')			*/
									$type['mime']			/*    dans cette chaine 					*/
									); 		

				$filename = time().$_FILES['chmpAjoutPhoto']['name'];
				$image_path = 'images/' .$filename;
				$thumb_path = 'images/miniatures/thumb_'. $filename;

				$sql = "INSERT INTO photos(lienMiniature, datePhoto, lienPhoto, commentairePhoto, idClient)
						VALUES (?,?,?,?,?)";
					
				
				if( creationMiniature($image_path, $thumb_path, 140) == false)
					return '<strong>Erreur de miniaturisation !!</strong>';
				
				else {
					$requetePrepareeAjoutPhoto = $this->lienBDD->prepare($sql);
					$requeteReussi = $requetePrepareeAjoutPhoto->execute(array(
																				 "images/miniatures/thumb_".$nomPhoto,
																				 date("Y-m-d H:i:s"),
																				 "images/".$nomPhoto,
																				 NULL,
																				 $this->idClient
																			  )
																		 );
					
					if ( ! $requeteReussi )
						echo "<p><strong>Erreur dans l'insertion dans la base.</strong></p>";
					
				}
			}
			else 
				echo 'Erreur dans le champAjoutPhoto : '.$_FILES['chmpAjoutPhoto']['error'];
		
		}
		else
			echo 'Pas de champ "chmpAjoutPhoto" trouvé';
	}
	
	public function getEmplacementPhoto($pIdPhoto) {
		
		$sql = "SELECT nomPhoto, lienPhoto
				FROM photos
				WHERE idPhoto = ".$pIdPhoto;
		
		$requetePreparee = $this->lienBDD->prepare($sql);
		$requetePreparee->execute();
		
		$infoPhotos = $requetePreparee->fetch(PDO::FETCH_OBJ);
		
		if ($infoPhotos){
			return $infoPhotos->lienPhoto;
			
		}
		else {
			return false;
			
		}
	}
	
}